package com.lancoo.znbkxx.teacher.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.inputmethod.InputMethodManager;

import androidx.appcompat.widget.AppCompatEditText;

public class MyEditText extends AppCompatEditText {
    public MyEditText(Context context) {
        super(context);
    }

    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        //有的键盘有收起按键，有的没有，所以这里是利用手机的后退键关闭键盘
        //判断当前点击的是后退，手指抬起，而且！！ 当前EditText是有焦点的，关闭输入法，否则按照原处理方式进行
        //EditText没有焦点 很有可能键盘已经收起了，就不需要再次关闭键盘。这时候之前设置的键盘变化监听就会回调
        //清除当前焦点
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP && this.isFocused()) {
            InputMethodManager inputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(this.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            return true;
        } else
            return super.onKeyPreIme(keyCode, event);
    }
}


